Repository navigation
feat(videoout): expose buffer labels and release replaced frames - #37
Merged
Merged
Conversation
…eoout-buffer-labels
…eoout-buffer-labels
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Implement
sceVideoOutGetBufferLabelAddresswith a port-owned contiguous array of 16 aligned 64-bit labels. Return its actual address and count, reset only newly registered buffer slots, and release the previous displayed buffer's label when its replacement finishes presentation. Black/blank replacements release the previous buffer without indexing a negative buffer number. Ports and reopened generations have separate arrays; label addresses are valid until close.Route stores through an explicitly exported graphics-driver helper so production NID patching preserves the cross-library call and the memory tracker sees an atomic release store. Null output and invalid/unopened/closed handles return their existing errors while preserving output on failure; successful pointer outputs support unaligned storage.
Astro Bot PPSA21564's bundled driver calls the API with a pointer output and computes
base + index * 8. Count and release behavior follow shadPS4's video output and its driver. Exact PS5 scanout timing, concurrent guest stores, error policy and same-buffer repetition remain unverified and are documented in library debt. EOP-flip interrupt registration remains separate and unimplemented.Tested
Checklist
Current upstream validation
Published head
d1de55fb3306fe658d34ba7db87ad6b3dfe05977contains current maind1670009fbfdfe57f8f26ee09ced77fe6b18c2ca. The label implementation is unchanged. Relocated the byte-identical label test function and dispatch entries, registered label modes separately, and placed the debt entry beside related buffer behavior. Merge-tree checks now merge this head cleanly with boykopovar#5539, boykopovar#4863, boykopovar#5239 and boykopovar#5466; none is a dependency. Conventions and whitespace checks pass.Earlier full Linux and Windows validation passes at head
71d9fe46914512b0c148f9d80317b0428bf14eec. Fresh full Linux and Windows validation passes for this published head; expected skips remain unvalidated.